﻿#include "DarkSkinIncludes.h"

namespace vl
{
	namespace presentation
	{
		namespace user_resource
		{
			using namespace collections;
			using namespace stream;
			using namespace controls;

			class DarkSkinResourceReader
			{
			public:
				static const vint parserBufferLength = 1745; // 4498 bytes before compressing
				static const vint parserBufferBlock = 1024;
				static const vint parserBufferRemain = 721;
				static const vint parserBufferRows = 2;
				static const char* parserBuffer[2];

				static void ReadToStream(vl::stream::MemoryStream& stream)
				{
					DecompressStream(parserBuffer, true, parserBufferRows, parserBufferBlock, parserBufferRemain, stream);
				}
			};

			const char* DarkSkinResourceReader::parserBuffer[] = {
				"\x92\x11\x00\x00\xC9\x06\x00\x00\x52\x00\x01\x82\x80\x00\x81\x80\x1E\x29\x65\x73\x2F\x35\x32\x3B\x31\x33\x26\x65\x74\x21\x24\x31\x32\x88\x10\x27\x61\x6D\x25\x3D\x12\x14\x21\x30\x39\x6B\x53\x2B\x29\x3E\x32\x10\x10\x2B\x65\x72\x33\x29\x3F\x36\x34\x8F\x18\x2E\x30\x22\x1E\x1C\x1C\x21\x32\x38\x65\x6E\x24\x39\x93\x31\x35\x85\x17\x34\xAF\x08\x8A\x8C\x86\x84\x88\x89\x14\x92\xBE\x05\x03\x82\x80\x05\xA6\x01\xCF\x81\x89\x2E\x33\x3A\x88\x37\x0E\x8D\x10\xA0\x0A\xAB\xA9\xAB\xAB\x0E\xD3\x34\x39\x3C\x35\x33\x01\xAD\x67\x81\x84\x2F\x33\x34\x03\xAC\xB7\x01\xD4\x25\x38\x34\x3F\x07\xAC\xBB\x01\xC3\x2C\x21\x33\x3B\x38\x8C\x8D\x08\xE3\x2F\x32\x34\x33\xAC\x01\xB4\x4D\xD2\x89\xC2\x8E\x88\x92\x90\x92\x86\x86\xCB\x1B\xA1\x0C\xCA\x80\x21\x7C\xE5\x2C\x24\x95\x33\xB7\x31\x3A\x1A\xEE\x34\x33\x36\xC1\x03\xAC\x01\x6F\xA9\xEA\xBF\x8B\x36\x5F\xAC\xD7\x06\x9E\xF4\x83\x2D\x94\x39\x9C\x3A\x40\xBC\x22\xA4\xB9\x84\x9B\xDD\xB2\x20\x6E\x19\x9B\x82\x13\x12\x9A\x33\x61\x75\x2C\x34\x3D\x17\x26\x3B\x94\x72\x69\x3B\x93\x9C\x1A\xC0\x37\xC1\x3E\x23\x06\x3B\xEC\xEC\x1F\x16\xEB\xD8\xDE\xFF\xC5\x3E\xDB\xB0\xE0\xE1\x1A\x9C\xA3\x13\x2A\xCD\x33\x30\x3A\x2C\xEE\x0D\xEF\xE2\x39\xEB\xE8\x9A\xE0\xF2\x19\xFC\xED\xEF\xEF\x37\xEB\xFA\x7C\x02\x1B\x1A\xF9\x59\x70\x0C\x0C\x37\x01\x13\x13\x10\xDE\x43\x85\x82\x78\xE6\x64\x70\x84\x6F\x73\x01\x52\x6E\x61\x06\x1B\x59\x85\x40\x42\x35\x14\x1C\x1D\x2D\x51\x62\x8B\x62\x50\x4A\x6E\x64\x68\xB7\x63\x8A\x88\x00\x70\x4D\x5D\x88\x13\x69\x16\x5B\x8B\x88\x2D\x83\x4D\x89\x13\x31\xA3\x13\x8E\x88\x1B\x8D\x5D\x8E\x14\x69\x22\x12\x19\x88\x3B\x98\x8A\x86\x40\x53\x23\x12\x1F\x7F\x6C\x05\x96\x60\x62\x03\x48\x64\x15\x18\x62\x0E\x9B\x57\x01\x57\x82\x42\x5C\x5D\x42\x2F\x18\x1E\x95\x50\x49\x0B\x56\x98\x71\x6F\x1F\x7E\x55\xD1\x70\x10\x9A\x8F\x47\x81\x47\x14\x49\x64\x2F\x17\x1F\x9A\x03\x4C\x0B\x56\x9D\x01\x47\x11\x1B\x18\x47\x39\x44\x6E\x1B\x66\x29\x17\x19\x91\xA6\x50\x50\x96\x40\x88\x43\x10\x1E\x9A\x5B\x4C\x56\xA3\x56\x5D\x4D\x51\xA6\xA2\x70\x34\x6D\x18\x1C\x72\x09\x43\x1D\x19\x64\x14\x0B\x56\xA7\xAB\x4E\x63\x4A\x1B\x43\x4B\x4D\x41\x19\x2E\x23\x1B\xA3\xA1\x01\x75\x82\x41\x8B\x7F\x65\x1A\x63\x40\x26\xAC\x6F\x62\x1B\xAC\x9C\x50\xA6\x40\x4E\x03\x6D\x19\x18\x6C\x14\x53\x18\x1B\x75\x3B\x40\x07\x56\xC7\x81\x4E\x0A\x0B\x2F\x0B\xBD\xB0\xB3\x7A\xA3\x15\x15\x12\x2E\x28\x19\xAD\x65\x50\x58\xB4\x41\x19\x66\x25\x5F\x79\x7C\xC2\x84\xBB\x4D\x0E\x5B\x64\xBA\xB0\xB3\xCE\x8E\xB8\x41\xB7\xEE\x70\x7D\x4B\x0B\x54\x39\x18\x4E\x4D\x73\x0A\x99\x18\x1C\x20\xAA\x4F\x0B\x11\x75\x29\x1B\xBA\xB7\xEE\xAE\x10\x14\xB1\x67\x24\x45\xB5\xAE\x78\x8D\x59\xC3\x14\xA6\x8E\x46\x13\x7F\x3B\x72\x1D\x8F\x40\x3D\x8C\xC5\x51\x19\x92\x5B\x53\x65\x40\x50\x19\xA2\x63\xA5\x69\x25\x55\x63\x56\x85\xAE\x87\x5F\xC9\x79\x7B\x5D\x5D\xAC\x81\x43\x64\x19\x11\x28\xCD\x58\x5C\x00\x14\x60\x43\x1F\xA8\x3A\x3A\x04\x14\x1A\x65\x1A\x48\x07\x56\x3F\xC1\x45\xCF\x1A\x37\xE4\x49\xCD\x87\x1F\xAD\x42\x5F\xA5\x7B\x76\x6A\x07\x56\x4F\xC2\xDC\x69\xD1\x6E\x39\xC3\x10\xCF\x63\x2B\x1D\x94\x1E\x4B\xF0\x1D\xD1\x19\x1D\x1B\x51\xDA\xD4\x36\xF8\xCA\x0E\x14\x13\x6C\x48\xD0\x88\x6E\x1D\xDF\xD7\x07\x5B\x70\xD4\xD8\xD1\x66\xE7\x81\x68\x1D\x4C\x14\x9A\x66\xDB\x15\x65\x11\x0B\x56\x7F\xF3\xD4\xD5\xCE\x76\xF7\x6B\x94\x1D\x5B\xFC\xD6\x6C\x08\x5B\x4C\xE2\xE1\xDD\x6C\x68\x82\x6A\x15\x3E\x77\x19\x4A\xE2\x65\x11\xDD\x52\xE6\x43\xC3\xEA\x0E\xA5\x43\x89\xED\xCE\xD7\x7D\xE4\x0B\x56\xE9\x8F\xC6\xDA\x0D\x11\x78\x30\x11\x1A\x4E\x24\x67\x16\x4E\x60\x72\x15\x43\x60\xE6\x8E\xCD\x59\xED\xE7\x66\xC9\x16\x6D\x1B\x98\x59\xD7\x1B\x92\x75\x3A\x48\xE6\x09\x5B\x48\xF9\xE9\xD5\x3A\x30\x86\x54\xE5\x65\x37\x14\x6C\xB1\x6D\x2E\x18\x11\x19\x13\x57\xE3\xEB\xD7\x9A\xC3\x4C\xE7\xD4\x66\xCE\xF4\x1C\xF4\x77\x18\xED\xF6\x40\xDF\xE5\xDA\xEB\xE1\xE2\xE6\xF0\xD6\x40\xBC\xEB\xF9\xA5\x19\xE4\xD8\xEC\x07\x56\xF7\xCB\xF4\xE1\xDF\x6B\xCA\xDB\xF5\xDF\xF9\x6D\x29\x00\xF1\x7C\x78\x8F\x36\x30\x0A\x69\x19\x6A\xF6\x4C\x6D\x6F\xF3\x41\x21\x7D\x74\x6A\x77\x11\x44\x70\x0E\xD1\x4C\x86\x36\x17\x1B\x29\x06\xFA\x7D\x78\xBD\x6C\x08\x73\x63\x6D\x29\x08\x84\x89\x67\x29\x28\x0B\x30\x74\x1F\x30\x1D\x4B\x05\x0D\x3C\x18\x72\x04\x5B\x30\x84\x07\xC0\x42\x49\x96\x13\x0E\x6B\x69\x14\x0D\x10\x75\x32\x4E\xCC\x72\x6D",
				"\x29\x3F\x84\x87\xD9\x41\x43\x48\x37\x3D\x7D\x2A\x98\x6D\x07\x56\x4A\x83\x86\x22\xAD\x22\x4F\x6C\x05\x2E\x1C\x79\x04\x09\x25\x70\x09\x4E\x77\x06\x8A\x87\x6C\x68\x73\x13\x1B\x2E\x8B\x4D\x95\x86\x1B\x50\x82\x8B\x3C\x3E\x75\x67\xED\x7F\x7E\x6D\x3F\x83\x21\x20\xA0\x7A\x75\x34\x85\x88\x19\xA9\x2E\x84\x35\xA5\x09\x05\x5B\x38\x8D\x18\xF2\x84\x82\xD6\x6E\x72\x27\x47\x98\x71\xE0\x4D\x23\x90\x21\xB1\x8F\x89\x14\x90\x22\x1B\x75\x00\x84\xB1\x70\x7F\x8D\xCC\x67\x93\x18\x94\x82\x90\xC0\x4F\x92\x7D\x91\x8E\x8A\x1B\x49\x02\x30\x37\x39\x6A\x0C\x7B\x76\x8F\x08\x5B\x23\x95\x3D\xAD\x21\x6F\x72\x07\x0D\x19\x01\x96\x8F\x15\x1B\x2E\x95\xA6\x9E\x93\x47\x2A\x95\x8B\x37\x17\x8A\x4E\x5A\x89\x69\xDB\x76\x88\x05\xAD\x3D\x91\x96\xA8\x8A\x97\x0D\x9B\x38\x71\x2D\xBE\x7F\x82\x65\x05\x95\x53\x4A\x96\x90\x4D\x93\x0F\x57\x51\x8C\x94\x32\xB0\x9D\x28\x6A\x8D\x9A\x8C\xCF\x80\x58\x1B\x35\x97\x97\x2C\x92\x9C\x74\xB6\x2A\x79\x53\x62\x97\x9B\x22\x99\x99\x8A\x9C\x87\x96\x07\x98\x7F\x97\xA6\x2D\x9D\x9C\x36\x90\x98\x1B\x43\x99\x87\x6F\x9F\x68\x8C\x4D\x38\x9C\x3C\xED\x66\x4C\x36\x28\x4F\x5E\xD7\x79\x7A\x1C\x18\x75\x05\xAD\x05\xA1\x96\x54\x1D\x9F\x3F\xF0\x0A\x90\x46\xB6\x8A\x86\x4D\x30\xA3\x3E\x89\xA7\x4C\x3A\x29\x4B\x0E\x98\x68\x75\x53\x1A\xA2\x89\x2E\x49\x6D\x0D\x49\x4B\x49\x34\xC6\x9B\x96\x64\xAC\x8A\x20\x6E\x98\x91\xCE\x48\x01\xA4\x26\x48\x0F\x75\x64\x05\x2C\xE6\x19\x0B\x2A\x9A\x9C\x84\xA5\x4A\x4C\x4A\xFB\x50\x20\x82\xCF\x48\x0C\x0A\xB5\x6A\x83\x40\x8F\xA1\x87\x4B\x91\x84\x79\x4C\x1C\x58\x1D\x2D\xA3\xA4\x5D\x8D\x90\x2A\x23\x90\x91\xCE\x1D\x6F\x0D\xE1\x5A\x50\x33\x43\xA8\x9A\x32\x83\x2C\x98\xA9\x83\x8F\x0C\x68\x0B\xA9\x4E\xCD\xAC\x8A\x3B\x81\x83\x20\x03\x9E\xA8\x53\xEC\x05\x7E\x3B\x83\x93\x20\x85\x9E\xA9\x42\xF0\x0B\xAC\x7B\xBD\x6F\xA4\x01\x29\xA7\x51\xB9\x66\x0B\xB5\xAF\xA2\x27\x32\xB6\x8E\x4D\xCD\x23\xB0\x21\xBD\xAB\xAC\x1F\x96\x8E\x03\x80\x0D\xA6\xB3\x56\x08\xA8\x7B\x4B\x0F\x02\xE0\x9E\x6E\x4B\x9C\x83\x4A\x62\x01\xA1\xC4\x76\xA6\x37\x0D\x1B\x2E\xB3\x97\xB4\x4A\x66\x93\xBF\x6B\x0A\x1B\x2E\xB4\xA1\xA2\x0F\x0B\xC5\xAC\x83\x26\x0A\x38\x3E\x9B\x2E\x0D\x19\x07\x76\x82\xCA\x9B\xAA\x20\x5D\xAA\xA6\x0E\x53\x01\x77\xB2\x31\xB3\xB6\x73\x28\x72\x97\x3E\x81\x6E\xA3\x9E\x75\xA1\x58\xBC\xB1\x19\x39\x73\x21\xDD\x5E\xAD\xA1\x67\x80\x78\x49\x98\x7E\x03\xAD\x15\xBD\xB5\x39\x35\x0C\x3D\x9F\x44\xB5\xBE\x47\xA5\x29\xDF\xA2\x88\x45\xFE\x96\xA3\x7B\x5B\xBB\x87\x4B\x45\x7E\x5B\x96\xB4\x66\xB9\x8A\xA5\xBC\x15\x93\xBA\x1D\xFA\x8D\x28\xFA\xA2\xBF\xBD\x69\x5C\x98\x16\xB9\x95\xAC\x93\x85\xBF\xB2\xF8\xB7\x5D\x43\xC7\x79\x78\xE3\xA6\x6B\xBC\x0B\xBB\xBA\x72\xB7\xB1\x21\xDC\xBB\xAA\x67\x01\xD4\xAC\x0E\xDC\xB9\xAA\xCA\xA0\xB5\x29\x17\xD7\xBD\x45\xE9\x44\xB8\xA8\x3A\xAE\x73\x43\x15\x0E\x55\x6F\x0D\x0D\x3F\x56\xA7\x3F\x98\x6C\xC0\x00\x0E\xC0\xC4\x11\xE0\x45\x0D\x46\x15\x76\x46\x6F\x4A\x27\x1E\xA2\x94\x94\x06\xCA\x77\x14\x79\x06\x2B\x9E\x71\xC3\x38\x34\xD8\x8B\x4C\xB5\xA9\xC6\xE6\x63\xB8\x3E\x70\x18\x72\x61\x00",
				};

			class DarkSkinResourceLoaderPlugin : public Object, public IGuiPlugin
			{
			public:

				GUI_PLUGIN_NAME(GacGen_DarkSkinResourceLoader)
				{
					GUI_PLUGIN_DEPEND(GacUI_Res_Resource);
					GUI_PLUGIN_DEPEND(GacUI_Res_TypeResolvers);
#ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA
					GUI_PLUGIN_DEPEND(GacUI_Instance_Reflection);
					GUI_PLUGIN_DEPEND(GacUI_Compiler_WorkflowTypeResolvers);
#endif
				}

				void Load(bool controllerUnrelatedPlugins, bool controllerRelatedPlugins)override
				{
					if (controllerRelatedPlugins)
					{
						List<GuiResourceError> errors;
						MemoryStream resourceStream;
						DarkSkinResourceReader::ReadToStream(resourceStream);
						resourceStream.SeekFromBegin(0);
						GetResourceManager()->LoadResourceOrPending(resourceStream, GuiResourceUsage::InstanceClass);
					}
				}

				void Unload(bool controllerUnrelatedPlugins, bool controllerRelatedPlugins)override
				{
				}
			};
			GUI_REGISTER_PLUGIN(DarkSkinResourceLoaderPlugin)
		}
	}
}
